Start4IT • Remote Sensing Index

EVI2 – Two-band Enhanced Vegetation Index

EVI2 is a simplified form of the Enhanced Vegetation Index that uses only red and NIR bands. It is designed for areas or sensors where the blue band is noisy or not available, while still improving sensitivity over NDVI in dense vegetation.

Vegetation density Two-band index (NIR & Red) Less sensitive to atmospheric effects Good for high biomass regions

1. What is EVI2?

The Two-band Enhanced Vegetation Index (EVI2) is a modification of the original EVI that removes the blue band, making it easier to apply to sensors that do not have a reliable blue band (or where atmospheric correction is less stable). It maintains the enhanced sensitivity to canopy structure and high biomass compared to NDVI.

Mathematical Definition

EVI2 = 2.5 × (NIR − RED) / (NIR + 2.4 × RED + 1.0) Dimensionless (–1 to +1)

Where:

  • NIR = Near Infrared reflectance
  • RED = Red reflectance
  • 2.5 = gain factor
  • 2.4 = red weighting coefficient
  • 1.0 = canopy background / bias term

Typical Interpretation

EVI2 Range Interpretation
< 0.0 Water, snow, clouds, or non-vegetated bright surfaces
0.0 – 0.2 Bare soil, rocks, urban areas, or very sparse vegetation
0.2 – 0.5 Moderate vegetation cover (grasslands, shrubs, mixed areas)
0.5 – 0.8 Dense, healthy vegetation (croplands, forests)
> 0.8 Very dense vegetation / possible saturation

Common Applications

  • Monitoring crop vigor and seasonal dynamics
  • Mapping forest health and biomass
  • Complementing NDVI in high-biomass regions
  • Using sensors without blue band or with unstable blue reflectance

2. Data & Bands for EVI2

Common Sensors & Bands

  • Sentinel-2 (ESA) – 10 m
    • Red: B4 (~665 nm)
    • NIR: B8 (~842 nm)
  • Landsat 8/9 OLI – 30 m
    • Red: B4
    • NIR: B5

Good Practice

  • Use atmospherically corrected surface reflectance products.
  • Filter out cloudy scenes using cloud masks or cloud percentage thresholds.
  • Clip to your area of interest (AOI) to reduce processing time and export size.
  • Combine with NDVI/EVI to better understand vegetation structure and stress.

Typical Use Cases

  • Operational crop monitoring (large scale)
  • Time-series analysis in agricultural dashboards
  • Regional vegetation condition mapping

3. Google Earth Engine Code – EVI2 for Any AOI

Steps: open code.earthengine.google.com → New Script → paste the code → draw your AOI as geometry on the map → click Run. Then export EVI2 as GeoTIFF to Google Drive.

// EVI2 for any Area of Interest (AOI) using Sentinel-2 SR
// -------------------------------------------------------
// 1) Go to: https://code.earthengine.google.com
// 2) Click "New Script" and paste this code.
// 3) On the map: draw your AOI (Polygon/Rectangle).
//    It will appear as a variable named 'geometry' in the left panel.
// 4) Click "Run" to display EVI2.
// 5) In the Tasks tab, click "Run" to export EVI2 to Google Drive.

// -------------------------------------------------------
// 1. Define Area of Interest (AOI)
// -------------------------------------------------------
var roi = geometry;  // Make sure a 'geometry' object exists in the left panel

// Center the map on the AOI
Map.centerObject(roi, 11);

// -------------------------------------------------------
// 2. Define time range
// -------------------------------------------------------
var startDate = '2023-01-01';
var endDate   = '2023-12-31';

// -------------------------------------------------------
// 3. Load Sentinel-2 Surface Reflectance
// -------------------------------------------------------
var s2_sr = ee.ImageCollection('COPERNICUS/S2_SR')
  .filterBounds(roi)
  .filterDate(startDate, endDate)
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20));

// Build a median composite and clip to AOI
var s2_median = s2_sr.median().clip(roi);

// -------------------------------------------------------
// 4. Compute EVI2
//    EVI2 = 2.5 * (NIR - RED) / (NIR + 2.4*RED + 1.0)
// -------------------------------------------------------
var evi2 = s2_median.expression(
  '2.5 * ((NIR - RED) / (NIR + 2.4 * RED + 1.0))',
  {
    'NIR': s2_median.select('B8'), // NIR
    'RED': s2_median.select('B4')  // Red
  }
).rename('EVI2');

// -------------------------------------------------------
// 5. Visualization on the map
// -------------------------------------------------------
var evi2Vis = {
  min: -1,
  max: 1,
  palette: [
    '#440154', // low
    '#3b528b',
    '#21908c',
    '#5dc963',
    '#fde725'  // high
  ]
};

// Add EVI2 layer to the map
Map.addLayer(evi2, evi2Vis, 'EVI2 (Sentinel-2)', true);

// Optionally, also show a true color composite for context
var s2_rgb = s2_sr
  .select(['B4','B3','B2'])  // RGB
  .median()
  .clip(roi);

Map.addLayer(s2_rgb, {min:0, max:3000}, 'True Color (RGB)', false);

// -------------------------------------------------------
// 6. Export EVI2 as GeoTIFF to Google Drive
// -------------------------------------------------------
Export.image.toDrive({
  image: evi2,
  description: 'EVI2_Export',
  fileNamePrefix: 'EVI2_Export',
  region: roi,
  scale: 10,         // Sentinel-2 native resolution (10 m)
  crs: 'EPSG:4326',
  maxPixels: 1e13
});